Virtual sticky generation

ABSTRACT

Digital programmed logic implemented on a computing device programmed to cause the display of an electronic document on a graphical user interface within the computing device. The electronic document displayed includes a plurality of data items of information. The programmed logic is programmed to automatically generate summary data that summarizes at least two data items from the plurality of data items included in the electronic document. The programmed logic is further programmed to generate a virtual sticky and display the virtual sticky on the electronic document. The virtual sticky displays the automatically generated summary data and the display of the virtual sticky is overlaid onto at least a portion of the display of the electronic document.

RELATED APPLICATION DATA AND CLAIM OF PRIORITY

This application is a Continuation of prior U.S. patent application Ser.No. 15/148,199 entitled “Virtual Sticky Generation”, filed May 6, 2016,the contents of which are incorporated by reference for all purposes asif fully set forth herein.

FIELD OF THE INVENTION

Embodiments relate generally generating a digital summary of data itemswithin an electronic document on computing devices. SUGGESTED GROUP ARTUNIT: 2184; SUGGESTED CLASSIFICATION: 710.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Users of data processing systems that receive data reports from multipleexternal sources may rely on sending and receiving reporting informationusing electronic documents such as PDF files. Received data reports maythen be parsed for relevant information in the reports and then uploadedinto the appropriate data processing or data management system. Validityand accuracy of the relevant information parsed is essential foraccurate management of data within a data management system. Thereforethere is a need verify the accuracy of the data parsed from theelectronic documents.

Verification may include comparing information within the electronicdocument to information that has been identified and parsed by the dataprocessing system. Various systems and approaches may be used toautomate the verification process such as designing a data processingsystem to include error checks of scanned documents. The error checkingmechanism may include rescanning the documents and comparing theidentified information to the identified information from the firstscan. However, automated double checking may be problematic if thesecond identification process fails to identify errors in informationidentified by the first process.

Alternatively, users may employ a manual sanity check where a userdouble checks the identified information against the informationdisplayed on the electronic document itself However, manual error checkscan be a slow and cumbersome process especially when there is a largeamount of data to be processed and stored.

SUMMARY

An apparatus includes one or more processors, one or more memoriescommunicatively coupled to the one or more processors and programmedlogic executing on the apparatus. Programmed logic may representapplication instructions programmed to be performed by the apparatus orlogic implemented in field programmable gate arrays orapplication-specific integrated circuits within the apparatus. Theprogrammed logic is configured to cause the display of an electronicdocument on a graphical user interface of the apparatus. The electronicdocument contains data items. The programmed logic is configured toautomatically generate summary data of the data items in the electronicdocument. The programmed logic is configured to generate and display onthe electronic document, a virtual sticky that displays theautomatically generated summary data. The display of the virtual stickyis overlaid onto at least a portion of the display of the electronicdocument within the graphic user interface of the apparatus.

BRIEF DESCRIPTION OF THE DRAWINGS

In the figures of the accompanying drawings like reference numeralsrefer to similar elements.

FIG. 1 is a block diagram that depicts an arrangement for displaying anelectronic document with a virtual sticky overlaying the electronicdocument.

FIG. 2 is a flow diagram that depicts an example method for generatingand displaying a virtual sticky that contains summary information ofdata items within an electronic document.

FIG. 3A depicts an example of a graphical display within the computingdevice displaying the electronic document.

FIG. 3B depicts an example of the graphical display within the computingdevice displaying the electronic document and a virtual sticky overlaidonto the display of the electronic document.

FIG. 4 depicts an example of the graphical display within the computingdevice displaying the electronic document and the virtual sticky indifferent positions on the electronic document.

FIG. 5 depicts an example embodiment of the virtual sticky and summarydata of the data items from the electronic document within the graphicaldisplay.

FIG. 6 is a block diagram that depicts an example computer system uponwhich embodiments may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments. It will be apparent, however, to oneskilled in the art that the embodiments may be practiced without thesespecific details. In other instances, well-known structures and devicesare shown in block diagram form in order to avoid unnecessarilyobscuring the embodiments.

-   -   1. OVERVIEW    -   2. STRUCTURAL OVERVIEW    -   3. FUNCTIONAL OVERVIEW    -   4. VIRTUAL STICKY        -   4.1. VIRTUAL STICKY DISPLAY OPTIONS        -   4.2. VIRTUAL STICKY SUMMARY DATA    -   5. IMPLEMENTATION MECHANISMS        1. Overview

Digital programmed logic implemented on a computing device is programmedto cause the display of an electronic document on a graphical userinterface within the computing device. The electronic document displayedincludes a plurality of data items of information. The programmed logicis programmed to automatically generate summary data that summarizes atleast two data items from the plurality of data items included in theelectronic document. The programmed logic is further programmed togenerate a virtual sticky and display the virtual sticky on theelectronic document. The virtual sticky displays theautomatically-generated summary data and the display of the virtualsticky is overlaid onto at least a portion of the display of theelectronic document.

2. Structural Overview

FIG. 1 is a block diagram that depicts an arrangement 100 for displayingan electronic document with a virtual sticky overlaying the electronicdocument. Arrangement 100 includes a computing device 102, a contentviewer 104, a graphical display 106, an electronic document 108, and avirtual sticky 110. The computing device 102 may represent various typesof computer systems including, but not limited to, a standalone computersystem, a mobile computer or laptop, a tablet, or a smartphone. Thecomputing device 102 may be communicatively coupled to one or morecomputing devices and/or network elements via one or more networksincluding, for example one or more wired or wireless networks, such aslocal area networks (LANs), wide area networks (WANs), the Internet, aswell as one or more direct connections.

The content viewer 104 may represent one or more computer applicationsconfigured or programmed to display, on the graphical display 106, theelectronic document 108. In an embodiment, the content viewer 104 isimplemented using one or more computer applications or other softwareelements that are loaded into and executed using the computing device102, digitally programmed logic implemented in field programmable gatearrays (FPGAs) or application-specific integrated circuits (ASICs).

The graphical display 106 is a display element configured or programmedto graphically display data to a user. Embodiments of the graphicaldisplay 106 include, but are not limited to, an LCD or LED computerscreen housed within the computing device 102, an external displayelement communicatively coupled to the computing device, or any otherdisplay element implementing commercially available display hardwareconfigured to graphically display data.

The electronic document 108 represents a data file that includes dataitems stored electronically. Examples of the electronic document 108includes, but is not limited to, PDFs files, spreadsheet files, textfiles, or any other data file that includes objects that contain data.An example of data items within the electronic document 108 is a PDFfile of an employee timesheet where the employee's time entries are thedata items.

The virtual sticky 110 is a digital sticky note designed to display asummary of data items contained in the electronic document 108. Forexample if the electronic document 108 is an itemized list of expensesbased upon the type of expense, then the virtual sticky 110 may displaya summary of the itemized expenses by expense type. In an embodiment,the content viewer 104 may include digital computer instructionsconfigured to generate the virtual sticky 110. In other embodiment,digital computer instructions configured to generate the virtual sticky110 may be implemented by another application separate from the contentviewer 104. In an embodiment, the virtual sticky 110 is generated anddisplayed in a manner such that the virtual sticky 110 is overlaid ontoat least a portion of the display of the electronic document 108.Embodiments of the virtual sticky 110 include, but are not limited to, agenerated virtual sticky 110 whose display is configurable based uponone or more of size, color, transparency, shape, position of theoverlaid display onto the electronic document 108, and duration ofpersistence of the overlaid display of the virtual sticky 110.

3. Functional Overview

FIG. 2 is a flow diagram that depicts an example method for generatingand displaying a virtual sticky that contains summary information ofdata items within an electronic document. The steps detailed in FIG. 2represent steps implemented on the computing device 102.

At step 205, the content viewer 104 displays a graphical representationof the electronic document 108. In an embodiment, the content viewer 104causes a digital display of the electronic document 108 on the graphicaldisplay 106. In an embodiment, the content viewer 104 may receive arequest to display the electronic document 108 on the graphical display106. For example, a user interacting with the content viewer 104 maydownload the electronic document 108 to the content viewer 104, whichthen causes the content viewer 104 to display the electronic document108. In another example, the content viewer 104 may implement a messagequeue configured to receive electronic documents. The electronicdocument 108 may be received in the message queue on the content viewer104. In response to receiving the electronic document 108 in the messagequeue, the content viewer 104 may be configured to display the receivedelectronic document 108. In an embodiment, the electronic document 108may be retrieved from an external storage location such as a cloudstorage server. In this case, the content viewer 104 may be configuredto communicate and retrieve, from the cloud storage server, one or moreelectronic documents for display.

In an embodiment, the electronic document 108 may contain data itemsthat convey different types of information. For example, if theelectronic document 108 is a project management report that containsdetails of employee tasks and hours spent by each employee on theirspecific tasks, then the data items may represent text or records thatare related employees, tasks, and the hours related to the tasks. Inanother example, the electronic document 108 may represent a records ofitems purchased for particular accounts related to a customer. In thisexample, the data items may represent text or records related to itemspurchased, customer accounts numbers, purchase price, amount purchased,and any other relevant information related to purchases.

FIG. 3A depicts an example embodiment of the graphical display 106displaying the electronic document 108 that represents a purchase orderof materials. Data items 305 represent the data items within theelectronic document 108. In an embodiment, the content viewer 104 mayimplement optical character recognition (OCR) functions to identify dataitems 305 within the electronic document 108. The data items 305identified may include text data and may be in a wide variety offormats, for example, basic or rich text formats or formats supported byapplication programs and word processing applications. The OCR functionsmay include a wide variety of functions that may vary depending upon aparticular implementation and embodiments are not limited to anyparticular OCR functions or OCR implementation. For example, a matrixmatching algorithm may be used to compare pixels in the electronicdocument 108 with pixels of letters in various fonts stored in thecontent viewer 104. Alternatively or additionally, a feature extractionalgorithm may be used to compare features in the electronic document 108with features of characters in various fonts stored in the contentviewer 104.

In an embodiment, the content viewer 104 may be configured to display,within the graphical display 106, the identified data items 305.Referring to FIG. 3A display control panel 310 may be used to controldifferent types of displays within the graphical display 106. Forexample, the display control panel 310 may include a line items displaytoggle 312, a virtual sticky display toggle 314, and an edit columnbutton 316. In other embodiments, the display control panel 310 may alsoinclude other features that allow the user to modify the position andsize of the electronic document 108, display for data items 305, anddisplay options for the virtual sticky 110. In and embodiment the lineitems display toggle 312 may include a toggle switch to enable anddisable the display of table 325. Table 325 represents a display of thedata items 305 identified from the electronic document 108. Bydisplaying the identified data items 305, within the table 325, a useris able to verify and/or reconcile any errors that may have occurredduring the data item identification process. For example, the first lineitem in table 325 has the description of “HSE REC HOBEY” and an amountidentified as $57.76. If however, the electronic document 108 displayedin the graphical display 106 actually shows a different amount than$57.76, then the user may be able to manually update the “HSE REC HOBEY”amount value to the correct amount.

Referring back to FIG. 2, at step 210 summary data is automaticallygenerated for at least two data items within the data items 305identified in the electronic document 108. In an embodiment, summarydata represents a summary of information contained in at least two dataitems within the data items 305. Referring to FIG. 3A data items 1-8from table 325 may be summarized into summary data based upon a commonattribute such as account. For instance, data item numbers 1, 2, and 8may be summarized based upon the common account number 6400 and dataitem numbers 3-7 may be summarized based upon their common accountnumber 7340.

In an embodiment, data summarized in the summary data may be based uponone or more content categories. A content category may represent one ormore types of attributes within the data items 305. For example, if adata item includes attributes: Description, Payment Amount, Account, andType. Summary data may then be based on an attribute such as Accountsuch that the summary data includes a mathematical summation of thevalues for matching accounts. For example, data item numbers 1, 2, and 8contains Payment Amount values of $57.76, $31.70, and $2.40respectively. The summary data for data item numbers 1, 2, and 8 maythen include a summation of the Payment Amount attribute as $91.86.Other types of summary data may be based on generating a summary oftextual attributes where specific words or symbols are identified withinan attribute and are then summarized by displaying summary text thatconveys specific summary information for the data items. For example, ifthe data items to be summarized together each contain specific wordsdescribing food items purchased, then the summary data may containspecific summary text such as “Food Items” to convey that the data itemssummarized are all food items. In an embodiment, summary data mayincorporate data retrieved from an external data server. For example,descriptive words in data items 305 may be used to query and retrieveinformation from an external data server. Information retrieved from theexternal data server may then be used as descriptive summary text withinthe summary data.

In an embodiment, content categories used to summarize data items may beconfigurable based upon the type of electronic documents received andthe type of the data items within the electronic documents. Forinstance, different content categories may be implemented for electronicdocuments related to product invoices than for electronic documentsrelated to work productivity reports. Additionally, content categoriesmay be customized based upon the attributes within the data items. Forexample, if the electronic document 108 is a work productivity reportfor multiple employees on a particular project, then specific contentcategories may be created including, but not limited to: summary data ofan employee's total work hours, summary data of an employee's averagedaily work hours, and summary data of an employee's productivity basedon hours worked. In yet another embodiment, content categories may becustomized based on the type of external server configured to receivethe data items when exported by the content viewer 104. For example, ifa project management server has been configured to receive data itemsrelated to employment task tracking, then the content categories may becustomized to include information specific to tracking employee tasks.

In an embodiment, summary data generated from two or more data items maybe automatically updated in response to an update of attribute valueswithin the data items. Users may be required to correct values of dataitems that may have been incorrectly identified when OCR functions wereperformed by the content viewer 104. If summary data generated includeda summary value for Payment Amount and then a user of the content viewer104 manually updates the Payment Amount of a particular data itemincluded in the summary data, then the summary data would beautomatically be recalculated to reflect the user's update. For example,referring to FIG. 3A the user may manually update the Payment Amountvalue of data item number 1 in table 325 from $57.76 to $27.76. Inresponse to making the update, the summary data for data item numbers 1,2, and 8 may automatically recalculate the summary value for the PaymentAmount from $91.86 to $61.86.

Referring back to FIG. 2, at step 215 virtual sticky 110 is generatedthat contains the summary data generated from the data items 305. Thevirtual sticky 110 is then displayed on the graphical display 106 of thecontent viewer 104. In an embodiment, the virtual sticky 110 is overlaidonto the display area of the electronic document 108. FIG. 3B depicts anexample embodiment of displaying the virtual sticky 110 in an area ofthe graphical display 106 such that that virtual sticky 110 is overlaidon top of the display of the electronic document 108. In an embodiment,the display of the overlaid virtual sticky 110 may be configured todisplay on each page of the electronic document 108 if the electronicdocument 108 is a multi-page document. For example, if the electronicdocument 108 is a 10 page document, then when the user scrolls todisplay pages 2-10 of the electronic document 108, the virtual sticky110 is displayed at the same overlay position for each page of theelectronic document 108 displayed within the graphical display 106. Inan embodiment, display of the virtual sticky 110 may be enabled anddisabled using the virtual sticky display toggle 314 within the displaycontrol panel 310. The virtual sticky display toggle 314 allows a userquick access to toggle between enabling and disabling the display of thevirtual sticky 110. This feature may be advantageous when the virtualsticky 110 is overlaid onto information within the electronic document108 that the user wishes to temporarily view without changing theoverlay position of the virtual sticky 110.

In an embodiment, size, shape, color, and position of the virtual sticky110 are configurable by the user. In an embodiment, the user may be ableto configure the level of transparency of the virtual sticky 110 suchthat the portion of the electronic document 108, upon which the virtualsticky 110 has been overlaid, may also be visible. Further detailsrelated to the position and display of the virtual sticky 110 isdiscussed in the VIRTUAL STICKY DISPLAY OPTIONS section herein.

In FIG. 3B the virtual sticky 110 includes summary data display 340.Summary data display 340 represents the generated summary data from step210. In an embodiment, summary data display 340 may represent at leastone summary item of the summary data generated at step 210. Summary datadisplay 340 may be configured to display the summary data of the dataitems 305 in any format, including a table format with configurable rowsand columns that include different attributes of the summary data. In anembodiment, the summary data display 340 may be updated automaticallywhen data items 305 are updated within the content viewer 104. Forexample, if the user manually updates values of data items displayed inthe table 325, then the content viewer 104 may trigger an update eventthat causes the summary data within the summary data display 340 to beupdated to reflect the latest calculated values of the summary data.Details related to handling and displaying summary data within thesummary data display 340 are discussed in the VIRTUAL STICKY SUMMARYDATA section herein.

In an embodiment, updating the visible columns within the table 325 maycause the summary data display 340 to display updated summary datacolumns. For example, the edit columns button 316, within the displaycontrol panel 310, may be used to edit visible columns within the table325. Editing the visible columns in table 325 may cause differentcolumns to be displayed within the summary data display 340. In anotherembodiment, the edit columns button 316 may allow users to select whichcolumns are included within the summary data display 340 in the virtualsticky 110.

4. Virtual Sticky

The virtual sticky 110 is a virtual sticky note configured to displaysummary information for data items 305 identified within the electronicdocument 108. In an embodiment, the content viewer 104 may includedigital computer instructions configured to generate and display thevirtual sticky 110 within the graphical display 106. In anotherembodiment, the digital computer instructions configured to generate anddisplay the virtual sticky 110 may be implemented by another applicationor module. Other applications or modules may include, but are notlimited to, a separate standalone application, a plugin application ormodule designed to be triggered by the content viewer 104, or add-onmodules that include digital computer instructions for generating anddisplaying the virtual sticky 110 but are implemented within the contentviewer 104 application instance.

4.1. Virtual Sticky Display Options

In an embodiment, the virtual sticky 110 is displayed, within thegraphical display 106, at a position such that the virtual sticky 110 isoverlaid onto at least a portion of the display of the electronicdocument 108. FIG. 4 depicts an example embodiment of the graphicaldisplay 106 displaying the electronic document 108 and the virtualsticky 110 overlaid onto a portion of the electronic document 108.Graphical location 405 depicts a first location where the virtual sticky110 may be displayed over the electronic document 108. In an embodiment,a portion of the virtual sticky 110 may be overlaid onto the electronicdocument 108. As depicted in FIG. 4, graphical location 405 depicts anembodiment of the virtual sticky 110 where the top portion of thevirtual sticky 110 overlays the display of the electronic document 108.Graphical location 410 depicts an embodiment of the virtual sticky 110where the bottom portion of the virtual sticky 110 overlays the displayof the electronic document 108. Graphical location 415 depicts anotherembodiment of the virtual sticky 110 where the entire virtual sticky 110is overlaid onto the display of the electronic document 108.

In an embodiment, the user may configure the position of the virtualsticky 110 by selecting the virtual sticky 110 and dragging the virtualsticky 110 to a different position within the display of the electronicdocument 108. In another embodiment, position of the virtual sticky 110may be customized using virtual sticky 110 display options. For example,the graphical display 106 may display a virtual sticky control panel,which may include configuration options to change the positional displayof the virtual sticky 110. FIG. 4 depicts an embodiment of a virtualsticky control panel 420 where the user may customize the virtual sticky110 within the graphical display 106. In an embodiment, the virtualsticky control panel 420 may represent a separate control panel from thedisplay control panel 310 depicted in FIG. 3A. In other embodiments,functions described for the virtual sticky control panel 420 may beincorporated into the functionality of the display control panel 310.The user may interact with the virtual sticky control panel 420 to inputvirtual sticky position coordinates. Upon changing the positioncoordinates of the virtual sticky 110, the virtual sticky 110 isautomatically displayed at the position corresponding to the coordinatesentered into the virtual sticky control panel 420. In anotherembodiment, the virtual sticky control panel may be accessed from thevirtual sticky 110 itself using a virtual sticky control panel icon. Forexample, in FIG. 4, virtual sticky control panel icon 425 represents adisplay options icon that, when selected, allows the user to modifydisplay options for the virtual sticky 110 including the graphicallocation of the virtual sticky 110.

In an embodiment, the virtual sticky 110 may be configured to display ata default graphical location within the graphical display 106. Thedefault graphical location may be used to determine the location for avirtual sticky that has not been previously configured by the user. Inan embodiment, the default graphical location may be configured todetermine a position that, when overlaid onto the electronic document108, does not obstruct the display of data items 305 identified withinthe electronic document 108. If the default graphical location is unableto determine a position that does not obstruct data items 305, then thedefault graphical location may be configured to display the virtualsticky 110 at a graphical location that minimizes the number of dataitems 305 that are obstructed by the display of the virtual sticky 110.In an embodiment, the virtual sticky control panel 420 may be used toenable default display of the virtual sticky 110, such that the virtualsticky 110, if exists, is always displayed onto the electronic document108. Alternatively, the virtual sticky control panel 420 may be used todisable display of the virtual sticky 110, such that the virtual sticky110 is not displayed onto the electronic document 108. In this scenario,the user may enable the display of the virtual sticky 110 by pressing orselecting enable options on the virtual sticky control panel 420. Inanother embodiment the virtual sticky 110 may include controls todisable display of the virtual sticky 110. FIG. 5 depicts a sampleembodiment of the virtual sticky 110 and the summary data display 340displayed within the graphical display 106. The virtual sticky 110includes a graphical interface control, dismiss control button 525,programmed to disable the display of the virtual sticky 110. Upon beingpressed by the user, the virtual sticky 110 would not be displayed onthe electronic document 108. In an embodiment, the virtual stickycontrol panel 420, from FIG. 4 may include graphical interface controlsthat allow the user to toggle the display of the virtual sticky 110.

In an embodiment, display of the virtual sticky 110 may be configured topersist beyond a single viewing session of the electronic document 108.For example, the virtual sticky 110 may persist within the contentviewer 104 such that every time the user views the specific electronicdocument 108, the corresponding virtual sticky 110 is enabled andoverlaid onto the display of the electronic document 108. In anembodiment, level of the persistence of the virtual sticky 110 isconfigurable. A user may configure the level of persistence such thatthe virtual sticky is displayed onto the electronic document 108 for aspecific period of time after being created. For example, the virtualsticky 110 may be configured to display onto the electronic document 108for one hour, one day, one week, or any other time period after beingcreated.

In an embodiment, the virtual sticky 110 and its corresponding summarydata may be stored at a location associated with the electronic document108. For instance, if the electronic document 108 is stored locallywithin the computing device 102, then the virtual sticky 110 may bestored locally within a file that is associated with the electronicdocument 108 such that when the electronic document 108 is loaded anddisplayed within the content viewer 104, the virtual sticky 110 isdisplayed as well. Storage of the virtual sticky 110 may also includedisplay preferences, including, but not limited to, size, shape, color,transparency, position of the overlay, and persistence information. Inanother embodiment, the virtual sticky 110 may be stored within metadataof the electronic document 108 such that when the content viewer 104loads and displays the electronic document 108, the content viewer 104reads the metadata related to the virtual sticky 110 and displays thevirtual sticky 110 based on the metadata within the electronic document108. In other embodiments where the electronic document 108 is storedremotely, data representing the virtual sticky 110 may also be storedremotely and associated with the electronic document 108.

The graphical appearance of the virtual sticky 110 may be configurable.Graphical appearance of the virtual sticky 110 may include, but is notlimited to, size, shape, color, and transparency. In an embodiment, thesize of virtual sticky 110 may be adjustable. For instance, the user maymake the virtual sticky 110 larger or smaller. The font size for thesummary data display 340 may also adjust corresponding to changes in thesize of the virtual sticky 110. Additionally, configuration of thevirtual sticky 110 may include a minimum font size for the summary datadisplay 340, such that if the size of the virtual sticky 110 is set to asize smaller than the minimum font size, then the virtual sticky 110 mayonly display a portion of the summary data display 340. The remainingportion of the summary data display 340 may be visible using an enabledscroll bar on the virtual sticky 110.

In an embodiment, the shape of the virtual sticky 110 display may bemodified. For example, the height or width of the virtual sticky 110display window may be increased or decreased. Referring to FIG. 4, thevirtual sticky 110 at graphical location 410 includes a size adjustmenttab 430 in the bottom right-hand corner of the virtual sticky 110. Thesize adjustment tab 430 allows the user to adjust the height and widthof the virtual sticky 110 by selecting the size adjustment tab 430 anddragging it in any direction. Additionally, the overall shape of thevirtual sticky 110 display window may be adjusted stylistically. Forexample, the user may configure the virtual sticky 110 to have roundededges, an oval shape, or any other configured shape.

The color of the virtual sticky 110 may be adjustable. For instance, theuser may adjust either the background color of the virtual sticky 110 orthe font color of the summary data display 340. In an embodiment, thevirtual sticky 110 may be configured to automatically generate in acolor that is stylistically compatible to the electronic document 108.For example, if the electronic document 108 has a white backgroundcolor, then the generation of the virtual sticky 110 may be configuredto automatically generate the virtual sticky 110 with a dark backgroundsuch as dark blue or green. In contrast, if the electronic document 108has a dark background, such as dark grey or black, then the generationof the virtual sticky 110 may be configured to automatically generatethe virtual sticky 110 with a lighter background such as yellow orwhite.

In an embodiment, the transparency level of the virtual sticky 110 maybe configurable. For instance, the user may adjust how transparent thevirtual sticky 110 is when overlaid onto the electronic document 108.The more transparent the virtual sticky 110 is the more the user may beable to view the portion of the electronic document 108 that isobstructed by the virtual sticky 110.

4.2. Virtual Sticky Summary Data

In an embodiment, summary data display 340 represents the summary datagenerated at step 210 in FIG. 2. The summary data display 340 representsa summary of the identified data items 305 from the electronic document108. FIG. 5 depicts a sample embodiment of the virtual sticky 110 andthe summary data display 340 displayed within the graphical display 106.The summary data display 340 may include a summarized data table 510 ofsummary information and a summary title 505. The summary title 505 maybe a configurable title given to the summary data in order to convey thetype of summary information that is displayed within the virtual sticky110. The summarized data table 510 represents the summary data displayedwithin the virtual sticky 110. In an embodiment, the summarized datatable 510 display may represent the complete set of data items 305summarized at step 210 or a configured subset of data items 305summarized. For example, if the data summarized at step 205 includes thepurchase amount for each account number, then the each summary data itemmay include the account number and the sum value of amount purchased foreach account. The virtual sticky 110 may then display the account numberand the amount purchased within the summarized data table 510.Alternatively, the user may configure the virtual sticky 110 to displayonly the account numbers. The user may do this for sanity checkingpurposes in order to determine whether the correct accounts areidentified within the electronic document 108. In this scenario, thesummarized data table 510 may then display the account number only.

In an embodiment, the virtual sticky 110 may be configured to displayadditional information that is associated with the data items 305 withinthe electronic document 108. For instance, the summarized data table 510may be configured to display external information related to theaccounts summarized. FIG. 5 depicts an example of the summarized datatable 510 displaying external account description information. In thisexample, the “Account Name” column may represent information retrievedfrom an external server. The content viewer 104 or an associated modulemay be configured to retrieve information associated with the data items305 for the purposes of conveying relevant and easily recognizableinformation to the user. For instance, if the account information isstored in an external account management database, then the contentviewer 104 may be configured to query and retrieve the account namesusing the account numbers.

In an embodiment, the format of the summary data displayed in thesummarized data table 510 may be customizable. Formatting may include,but is not limited to, changing the order of the column attributes,changing the order of the data items in the rows, and changing theorientation of the summarized data table 510. Formatting options may beaccessible from the virtual sticky control panel icon 425, the virtualsticky control panel 420, and/or the display control panel 310. Forexample, if the user wanted to change the orientation of the summarizeddata table 510, the user may use the virtual sticky control panel 420 tochange the row and column orientation from the orientation depicted inFIG. 5 to the following:

Acct # 6400 7340 Account Name FOOD ITEMS DISPOSABLE TOTAL Amount $91.86$137.87 $229.73

In an embodiment, the rows within the summarized data table 510 may behighlighted in order to show the underlying line items within table 325that make up the summary data for the highlighted row in the summarizeddata table 510. For example, as depicted in FIG. 5, the user mayhighlight row 515 in order to see which line items were summarized forthat specific account. The underlying line items 330, within table 325,may then be highlighted to show the user the specific line items make upthat specific summary for that specific account.

In an embodiment, the virtual sticky 110 may be configured with controlsto export data items 305, summary data, or both to an external server.For example, if the electronic document 108 contained data items 305associated with record keeping in an external record keeping database,then the virtual sticky 110 may be equipped with functionality to exportthe data items to the record keeping database. FIG. 5 depicts anembodiment of an export button 315 configured to export data items 305associated with the summary data displayed in the virtual sticky 110.The export button 520 may be configured to export the data items 305 toa specific target destination. For example, if the user clicked on theexport button 520 shown in FIG. 5, then the virtual sticky 110 wouldexport to an external server the data items 305 summarized in thesummarized data table 510. In this case, the data items 305 wouldinclude data item numbers 1, 2, and 8 from table 325 from FIG. 2 foraccount number 6400 and data item numbers 3-7 from table 325 from FIG. 2for account number 7340. Additionally, the export button 520 may beconfigured to send the data items 305 associated with the summary datain the summarized data table 510 and the summary data itself. In anembodiment, the user may configure the export button 520 to export thedata items 305 and summary data itself to multiple specific destinationssuch that the data items 305 are export to one target destination andthe summary data is exported to another target destination.

5. Implementation Examples

Although the flow diagrams of the present application depict aparticular set of steps in a particular order, other implementations mayuse fewer or more steps, in the same or different order, than thosedepicted in the figures.

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

FIG. 6 is a block diagram that depicts an example computer system 600upon which embodiments may be implemented. Computer system 600 includesa bus 602 or other communication mechanism for communicatinginformation, and a processor 604 coupled with bus 602 for processinginformation. Computer system 600 also includes a main memory 606, suchas a random access memory (RAM) or other dynamic storage device, coupledto bus 602 for storing information and instructions to be executed byprocessor 604. Main memory 606 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by processor 604. Computer system 600further includes a read only memory (ROM) 608 or other static storagedevice coupled to bus 602 for storing static information andinstructions for processor 604. A storage device 610, such as a magneticdisk or optical disk, is provided and coupled to bus 602 for storinginformation and instructions.

Computer system 600 may be coupled via bus 602 to a display 612, such asa cathode ray tube (CRT), for displaying information to a computer user.Although bus 602 is illustrated as a single bus, bus 602 may compriseone or more buses. For example, bus 602 may include without limitation acontrol bus by which processor 604 controls other devices withincomputer system 600, an address bus by which processor 604 specifiesmemory locations of instructions for execution, or any other type of busfor transferring data or signals between components of computer system600.

An input device 614, including alphanumeric and other keys, is coupledto bus 602 for communicating information and command selections toprocessor 604. Another type of user input device is cursor control 616,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 604 and forcontrolling cursor movement on display 612. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

Computer system 600 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic or computer software which, in combination with thecomputer system, causes or programs computer system 600 to be aspecial-purpose machine. According to one embodiment, those techniquesare performed by computer system 600 in response to processor 604processing instructions stored in main memory 606. Such instructions maybe read into main memory 606 from another non-transitorycomputer-readable medium, such as storage device 610. Processing of theinstructions contained in main memory 606 by processor 604 causesperformance of the functionality described herein. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the embodiments.Thus, embodiments are not limited to any specific combination ofhardware circuitry and software.

The term “non-transitory computer-readable medium” as used herein refersto any non-transitory medium that participates in providing data thatcauses a computer to operate in a specific manner. In an embodimentimplemented using computer system 600, various computer-readable mediaare involved, for example, in providing instructions to processor 604for execution. Such media may take many forms, including but not limitedto, non-volatile and volatile non-transitory media. Non-volatilenon-transitory media includes, for example, optical or magnetic disks,such as storage device 610. Volatile non-transitory media includesdynamic memory, such as main memory 606. Common forms of non-transitorycomputer-readable media include, without limitation, a floppy disk, aflexible disk, hard disk, magnetic tape, or any other magnetic medium, aCD-ROM, any other optical medium, a RAM, a PROM, and EPROM, aFLASH-EPROM, any other memory chip, memory cartridge or memory stick, orany other medium from which a computer can read.

Various forms of non-transitory computer-readable media may be involvedin storing instructions for processing by processor 604. For example,the instructions may initially be stored on a storage medium of a remotecomputer and transmitted to computer system 600 via one or morecommunications links. Bus 602 carries the data to main memory 606, fromwhich processor 604 retrieves and processes the instructions. Theinstructions received by main memory 606 may optionally be stored onstorage device 610 either before or after processing by processor 604.

Computer system 600 also includes a communication interface 618 coupledto bus 602. Communication interface 618 provides a communicationscoupling to a network link 620 that is connected to a local network 622.For example, communication interface 618 may be a modem to provide adata communication connection to a telephone line. As another example,communication interface 618 may be a local area network (LAN) card toprovide a data communication connection to a compatible LAN. Wirelesslinks may also be implemented. In any such implementation, communicationinterface 618 sends and receives electrical, electromagnetic or opticalsignals that carry digital data streams representing various types ofinformation.

Network link 620 typically provides data communication through one ormore networks to other data devices. For example, network link 620 mayprovide a connection through local network 622 to a host computer 624 orto data equipment operated by an Internet Service Provider (ISP) 626.ISP 626 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 628. Local network 622 and Internet 628 both use electrical,electromagnetic or optical signals that carry digital data streams.

Computer system 600 can send messages and receive data, includingprogram code, through the network(s), network link 620 and communicationinterface 618. In the Internet example, a server 630 might transmit arequested code for an application program through Internet 628, ISP 626,local network 622 and communication interface 618. The received code maybe processed by processor 604 as it is received, and/or stored instorage device 610, or other non-volatile storage for later execution.

In the foregoing specification, embodiments have been described withreference to numerous specific details that may vary from implementationto implementation. Thus, the sole and exclusive indicator of what is,and is intended by the applicants to be, the invention is the set ofclaims that issue from this application, in the specific form in whichsuch claims issue, including any subsequent correction. Hence, nolimitation, element, property, feature, advantage or attribute that isnot expressly recited in a claim should limit the scope of such claim inany way. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense.

What is claimed is:
 1. An apparatus comprising: one or more processors;and one or more memories storing instructions which, when processed byone or more processors, cause: displaying an electronic document on agraphical user interface of the apparatus, wherein the electronicdocument includes a plurality of data items; generating, based upon theplurality of data items included in the electronic document, summarydata that includes two or more summary data items and summarizes atleast two or more data items from the plurality of data items includedin the electronic document; generating and causing to be displayed onthe graphical user interface of the apparatus, a virtual sticky thatdisplays the summary data that includes two or more summary data items,that summarizes the at least two or more data items from the pluralityof data items included in the electronic document; detecting a userselection of a particular summary data item from the two or more summarydata items displayed in the virtual sticky, in response to detecting theuser selection of the particular summary data item from the two or moresummary data items displayed on the virtual sticky: determining one ormore data items, from the plurality of data items included in theelectronic document, which correspond to the particular summary dataitem, and visually identifying, on the graphical user interface of theapparatus, the one or more data items included in the electronicdocument, which correspond to the particular summary data item.
 2. Theapparatus of claim 1, wherein visually identifying, on the graphicaluser interface of the apparatus, the one or more data items included inthe electronic document includes visually identifying, on the graphicaluser interface of the apparatus, the one or more data items separatefrom the electronic document.
 3. The apparatus of claim 2, whereinvisually identifying, on the graphical user interface of the apparatus,the one or more data items separate from the electronic documentincludes visually identifying the one or more data items from a tablethat includes the plurality of data items included in the electronicdocument.
 4. The apparatus of claim 1, wherein visually identifying theone or more data items in the electronic document that correspond to theparticular summary data item include highlighting the one or more dataitems.
 5. The apparatus of claim 1, wherein: the one or more data itemsin the electronic document that correspond to the particular summarydata item include two or more data items that are not adjacent, andvisually identifying the one or more data items in the electronicdocument that correspond to the particular summary data item includesvisually identifying the two or more data items that are not adjacent.6. The apparatus of claim 1, wherein generating, based upon theplurality of data items included in the electronic document, summarydata that includes two or more summary data items and summarizes the atleast two or more data items from the plurality of data items in theelectronic document is performed based upon a user selection of one ormore content categories for the virtual sticky.
 7. The apparatus ofclaim 1, wherein the one or more memories store additional instructionswhich, when processed by the one or more processors, cause display ofone or more graphical user interface controls that allow a user tospecify one or more attributes of the virtual sticky, wherein the one ormore attributes of the virtual sticky include one or more of size,shape, color, transparency, or position.
 8. The apparatus of claim 1,wherein the one or more memories store additional instructions which,when processed by the one or more processors, cause one or more controlsto be displayed on the graphical user interface that allow a user tochange one or more of an arrangement, an orientation, or a formatting ofthe summary data that includes two or more summary data items andsummarizes the at least two or more data items from the plurality ofdata items in the electronic document.
 9. One or more non-transitorycomputer-readable media storing instructions which, when processed byone or more processors, cause: displaying an electronic document on agraphical user interface of an apparatus, wherein the electronicdocument includes a plurality of data items; generating, based upon theplurality of data items included in the electronic document, summarydata that includes two or more summary data items and summarizes atleast two or more data items from the plurality of data items includedin the electronic document; generating and causing to be displayed onthe graphical user interface of the apparatus, a virtual sticky thatdisplays the summary data that includes two or more summary data items,that summarizes the at least two or more data items from the pluralityof data items included in the electronic document; detecting a userselection of a particular summary data item from the two or more summarydata items displayed in the virtual sticky, in response to detecting theuser selection of the particular summary data item from the two or moresummary data items displayed on the virtual sticky: determining one ormore data items, from the plurality of data items included in theelectronic document, which correspond to the particular summary dataitem, and visually identifying, on the graphical user interface of theapparatus, the one or more data items included in the electronicdocument, which correspond to the particular summary data item.
 10. Theone or more non-transitory computer-readable media of claim 9, whereinvisually identifying, on the graphical user interface of the apparatus,the one or more data items included in the electronic document includesvisually identifying, on the graphical user interface of the apparatus,the one or more data items separate from the electronic document. 11.The one or more non-transitory computer-readable media of claim 10,wherein visually identifying, on the graphical user interface of theapparatus, the one or more data items separate from the electronicdocument includes visually identifying the one or more data items from atable that includes the plurality of data items included in theelectronic document.
 12. The one or more non-transitorycomputer-readable media of claim 9, wherein visually identifying the oneor more data items in the electronic document that correspond to theparticular summary data item include highlighting the one or more dataitems.
 13. The one or more non-transitory computer-readable media ofclaim 9, wherein: the one or more data items in the electronic documentthat correspond to the particular summary data item include two or moredata items that are not adjacent, and visually identifying the one ormore data items in the electronic document that correspond to theparticular summary data item includes visually identifying the two ormore data items that are not adjacent.
 14. The one or morenon-transitory computer-readable media of claim 9, wherein generating,based upon the plurality of data items included in the electronicdocument, summary data that includes two or more summary data items andsummarizes the at least two or more data items from the plurality ofdata items in the electronic document is performed based upon a userselection of one or more content categories for the virtual sticky. 15.The one or more non-transitory computer-readable media of claim 9,wherein the one or more non-transitory computer-readable media storeadditional instructions which, when processed by the one or moreprocessors, cause display of one or more graphical user interfacecontrols that allow a user to specify one or more attributes of thevirtual sticky, wherein the one or more attributes of the virtual stickyinclude one or more of size, shape, color, transparency, or position.16. The one or more non-transitory computer-readable media of claim 9,wherein the one or more non-transitory computer-readable media storeadditional instructions which, when processed by the one or moreprocessors, cause one or more controls to be displayed on the graphicaluser interface that allow a user to change one or more of anarrangement, an orientation, or a formatting of the summary data thatincludes two or more summary data items and summarizes the at least twoor more data items from the plurality of data items in the electronicdocument.
 17. A computer-implemented method comprising: displaying anelectronic document on a graphical user interface of an apparatus,wherein the electronic document includes a plurality of data items;generating, based upon the plurality of data items included in theelectronic document, summary data that includes two or more summary dataitems and summarizes at least two or more data items from the pluralityof data items included in the electronic document; generating andcausing to be displayed on the graphical user interface of theapparatus, a virtual sticky that displays the summary data that includestwo or more summary data items, that summarizes the at least two or moredata items from the plurality of data items included in the electronicdocument; detecting a user selection of a particular summary data itemfrom the two or more summary data items displayed in the virtual sticky,in response to detecting the user selection of the particular summarydata item from the two or more summary data items displayed on thevirtual sticky: determining one or more data items, from the pluralityof data items included in the electronic document, which correspond tothe particular summary data item, and visually identifying, on thegraphical user interface of the apparatus, the one or more data itemsincluded in the electronic document, which correspond to the particularsummary data item.
 18. The computer-implemented method of claim 17,wherein visually identifying, on the graphical user interface of theapparatus, the one or more data items included in the electronicdocument includes visually identifying, on the graphical user interfaceof the apparatus, the one or more data items separate from theelectronic document.
 19. The computer-implemented method of claim 18,wherein visually identifying, on the graphical user interface of theapparatus, the one or more data items separate from the electronicdocument includes visually identifying the one or more data items from atable that includes the plurality of data items included in theelectronic document.
 20. The computer-implemented method of claim 17,wherein the one or more non-transitory computer-readable media storeadditional instructions which, when processed by the one or moreprocessors, cause one or more controls to be displayed on the graphicaluser interface that allow a user to change one or more of anarrangement, an orientation, or a formatting of the summary data thatincludes two or more summary data items and summarizes the at least twoor more data items from the plurality of data items in the electronicdocument.